define(['ko','jquery','underscore','../template/renderer','jquery-ui-modules/slider'],function(ko,$,_,renderer){'use strict';var isTouchDevice=!_.isUndefined(document.ontouchstart),sliderFn='slider';ko.bindingHandlers.range={init:function(element,valueAccessor){var config=valueAccessor(),value=config.value;_.extend(config,{value:value(),slide:function(event,ui){value(ui.value);}});$(element)[sliderFn](config);},update:function(element,valueAccessor){var config=valueAccessor();config.value=ko.unwrap(config.value);$(element)[sliderFn]('option',config);}};renderer.addAttribute('range');if(!isTouchDevice){return;} $.widget('mage.touchSlider',$.ui.slider,{_create:function(){_.bindAll(this,'_mouseDown','_mouseMove','_onTouchEnd');return this._superApply(arguments);},_mouseInit:function(){var result=this._superApply(arguments);this.element.off('mousedown.'+this.widgetName).on('touchstart.'+this.widgetName,this._mouseDown);return result;},_mouseDown:function(event){var prevDelegate=this._mouseMoveDelegate,result;event=this._touchToMouse(event);result=this._super(event);if(prevDelegate===this._mouseMoveDelegate){return result;} $(document).off('mousemove.'+this.widgetName).off('mouseup.'+this.widgetName);$(document).on('touchmove.'+this.widgetName,this._mouseMove).on('touchend.'+this.widgetName,this._onTouchEnd).on('tochleave.'+this.widgetName,this._onTouchEnd);return result;},_mouseMove:function(event){event=this._touchToMouse(event);return this._super(event);},_onTouchEnd:function(event){$(document).trigger('mouseup');return this._mouseUp(event);},_mouseUp:function(){this._removeTouchHandlers();return this._superApply(arguments);},_mouseDestroy:function(){this._removeTouchHandlers();return this._superApply(arguments);},_removeTouchHandlers:function(){$(document).off('touchmove.'+this.widgetName).off('touchend.'+this.widgetName).off('touchleave.'+this.widgetName);},_touchToMouse:function(event){var orig=event.originalEvent,touch=orig.touches[0];return _.extend(event,{which:1,pageX:touch.pageX,pageY:touch.pageY,clientX:touch.clientX,clientY:touch.clientY,screenX:touch.screenX,screenY:touch.screenY});}});sliderFn='touchSlider';});